¿Por qué no puedo agregar Symbol.iterator en un objeto como ese?
Object.prototype[Symbol.iterator]; let obj = {num: 1 , type : ' :) '} for (let p of obj) { console.log(p); } // TypeError: obj is not iterableDebe asignar una función de generador a Object.prototype[Symbol.iterator] .
Object.prototype[Symbol.iterator] = function*() { for (let k in this) { yield this[k]; } }; let obj = { num: 1, type: ' :) ' } for (let p of obj) { console.log(p); }Porque en realidad no asignó nada a Object.prototype[Symbol.iterator] : si asigna una función de iterador que hace algo sensato, creo que podría funcionar como esperaba
Object.prototype[Symbol.iterator] = function*(){ for(let entry of Object.entries(this)) yield entry }; let obj = {num: 1 , type : ' :) '} for (let [k,v] of obj) { console.log(k,v); } // another way console.log(...obj)